package com.rykj.qxj.server.model.entity;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Transient;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.rykj.qxj.server.common.utils.SourceGenerateUtils;

import io.swagger.annotations.ApiModelProperty;

/**
 * 
 * @Description:接口管理       
 * @date:   2019年3月13日 下午2:18:16  
 * @author: wangshunyi
 */
/**    
 * @Description: TODO(这里用一句话描述这个方法的作用)        
 * @date:   2019年7月26日 上午11:19:31  
 * @author: wangshunyi    
 */  
public class ApiManage  implements Serializable{
	
	private static final long serialVersionUID = 1L;
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Integer id; 
	/**
	 * 接口名称
	 */
	@ApiModelProperty(value = "接口名称")
	private String name;
	/**
	 * 接口分类
	 */
	@ApiModelProperty(value = "接口分类")
	private String apiType;
	/**
	 * 接口类型
	 */
	@ApiModelProperty(value = "分类目录Id")
	private Integer apiTypeId;
	/**
	 * 应用id
	 */
	@ApiModelProperty(value = "应用Id")
	private Integer applyId;
	
	/**
	 * 接口级别
	 */
	@ApiModelProperty(value = "一级--levelOne 二级--levelTwo  三级--levelThree")
	private String level;
	
	/**
	 * 是否第三方接口 YES-是第三方  NO-不是第三方
	 */
	@ApiModelProperty(value = "是否第三方接口 YES-是第三方  NO-不是第三方  FILE-文件")
	private String isOutSide;
	/**
	 * 接口类型名称
	 */
	@JsonIgnore
	@Transient
	private String apiTypeName;
	/**
	 * 访问地址
	 */
	@ApiModelProperty(value = "访问地址")
	private String url;
	/**
	 * 描述
	 */
	@ApiModelProperty(value = "描述")
	private String apiDesc;
	
	/**
	 * 数据提供方
	 */
	@ApiModelProperty(value = "数据提供方")
	private String dataSupplyName;
	/**
	 * 请求方式
	 */
	@ApiModelProperty(value = "请求方式")
	private String requestMethod;
	/**
	 * 数据源类型，redis,mysql
	 */
	@ApiModelProperty(value = "数据源类型，redis,mysql")
	private String databaseType;

	@ApiModelProperty(value = "redis命令类型")
	private String redisComdType;

	@ApiModelProperty(value = "redis命令类型对应的命令")
	private String redisComd;

	/**
	 * 数据源
	 */
	@ApiModelProperty(value = "数据源Id")
	private Integer databaseSourceId;
	/**
	 * 数据源名称
	 */
	@JsonIgnore
	@Transient
	private String databaseSourceName;
	
	/**
	 * 创建时间
	 */
	@JsonIgnore
	@ApiModelProperty(value = "创建时间")
	private Date createTime;
	
	/**
	 * 修改时间
	 */
	@JsonIgnore
	private Date updateTime;
	/**
	 * 接口状态
	 */
	@ApiModelProperty(value = "接口状态：ENABLE(启用):DISABLE(禁用)")
	private String apiStatus;
	
	@JsonIgnore
	@ApiModelProperty(value = "删除状态，NORMAL:正常；DELETE:删除")
    private String  deleteStatus;
	/**
	 * 第三方接口地址
	 */
	@ApiModelProperty(value = "第三方接口地址Url")
	private String  outsideUrl;
	/**
	 * 第三方接口地址
	 */
	@ApiModelProperty(value = "交换数据的格式")
	private String  dataFormat;
	
	/**
	 * 关键字
	 */
	@ApiModelProperty(value = "关键字")
	private String keyWords;
	/**
	 * 创建方式 VISUAL: 可视化,BYSQL SQL创建方式 
	 */
	@ApiModelProperty(value = "创建方式 VISUAL:可视化 BYSQL:SQL创建方式")
	private String createMethod;
	
	
	@JsonIgnore
	@Transient
	private String databaseName;
	@JsonIgnore
	@Transient
	private String apiVerifyStatus;
	
	@JsonIgnore
	@Transient
	private Date verifyTime;
	/**
	 * 版本数量
	 */
	@JsonIgnore
	@Transient
	private Integer versionCount;
	/**
	 * 应用名称
	 */
	@JsonIgnore
	@Transient
    private String applyName; 
    /**
     * 接口版本
     */
	@JsonIgnore
    @Transient
    private String versionNumber;
    //改变类型
	@JsonIgnore
    @Transient
    private String changeType; 
    //改变时间
	@JsonIgnore
    @Transient
    private Date changeTime;
    //审核状态
	@JsonIgnore
    @Transient
    private String verifyStatus; 
    //审核人
	@JsonIgnore
    @Transient
    private String verifyBy;
    //审核时间
	@JsonIgnore
    @Transient
    private Date verifyTiming; 
    //接口版本Id
	@JsonIgnore
    @Transient
    private Integer apiVersionId;
	//sql模板
	@JsonIgnore
	@Transient
	private String sqlTemplet;
	
	@JsonIgnore
	@Transient
	private String apiVersionStatus;
	
	@JsonIgnore
	@Transient
	private String apiDeleteStatus;
	
	//集市名称
	@JsonIgnore
	@Transient
	private String martName;
	//文件接口路径
	@JsonIgnore
	@Transient
	private String fileApiPath;
	//接口调用次数
	@JsonIgnore
	@Transient
	private Double useTimes;
	public Double getUseTimes() {
		return useTimes;
	}
	public void setUseTimes(Double useTimes) {
		this.useTimes = useTimes;
	}
	public Integer getApplyId() {
		return applyId;
	}
	public void setApplyId(Integer applyId) {
		this.applyId = applyId;
	}
	public String getMartName() {
		return martName;
	}
	public void setMartName(String martName) {
		this.martName = martName;
	}
	public String getOutsideUrl() {
		return outsideUrl;
	}
	public void setOutsideUrl(String outsideUrl) {
		this.outsideUrl = outsideUrl;
	}
	
	public String getIsOutSide() {
		return isOutSide;
	}
	public void setIsOutSide(String isOutSide) {
		this.isOutSide = isOutSide;
	}
	public String getDataFormat() {
		return dataFormat;
	}
	public void setDataFormat(String dataFormat) {
		this.dataFormat = dataFormat;
	}
	public Integer getApiVersionId() {
		return apiVersionId;
	}
	public Date getUpdateTime() {
		return updateTime;
	}
	
	public String getSqlTemplet() {
		return sqlTemplet;
	}
	public void setSqlTemplet(String sqlTemplet) {
		this.sqlTemplet = sqlTemplet;
	}
	public void setDatabaseSourceId(Integer databaseSourceId) {
		this.databaseSourceId = databaseSourceId;
	}
	public void setUpdateTime(Date updateTime) {
		this.updateTime = updateTime;
	}
	public void setApiVersionId(Integer apiVersionId) {
		this.apiVersionId = apiVersionId;
	}
	public String getApplyName() {
		return applyName;
	}
	public void setApplyName(String applyName) {
		this.applyName = applyName;
	}
	public String getVersionNumber() {
		return versionNumber;
	}
	public void setVersionNumber(String versionNumber) {
		this.versionNumber = versionNumber;
	}
	public String getChangeType() {
		return changeType;
	}
	public void setChangeType(String changeType) {
		this.changeType = changeType;
	}
	public Date getChangeTime() {
		return changeTime;
	}
	public void setChangeTime(Date changeTime) {
		this.changeTime = changeTime;
	}
	public String getVerifyStatus() {
		return verifyStatus;
	}
	public void setVerifyStatus(String verifyStatus) {
		this.verifyStatus = verifyStatus;
	}
	public String getVerifyBy() {
		return verifyBy;
	}
	public void setVerifyBy(String verifyBy) {
		this.verifyBy = verifyBy;
	}
	public Date getVerifyTiming() {
		return verifyTiming;
	}
	public void setVerifyTiming(Date verifyTiming) {
		this.verifyTiming = verifyTiming;
	}
	public String getApiTypeName() {
		return apiTypeName;
	}
	public void setApiTypeName(String apiTypeName) {
		this.apiTypeName = apiTypeName;
	}
	public String getDatabaseSourceName() {
		return databaseSourceName;
	}
	public void setDatabaseSourceName(String databaseSourceName) {
		this.databaseSourceName = databaseSourceName;
	}
	public String getApiVerifyStatus() {
		return apiVerifyStatus;
	}
	public void setApiVerifyStatus(String apiVerifyStatus) {
		this.apiVerifyStatus = apiVerifyStatus;
	}
	public Date getVerifyTime() {
		return verifyTime;
	}
	public void setVerifyTime(Date verifyTime) {
		this.verifyTime = verifyTime;
	}
	public Integer getVersionCount() {
		return versionCount;
	}
	public void setVersionCount(Integer versionCount) {
		this.versionCount = versionCount;
	}
	public String getDatabaseName() {
		return databaseName;
	}
	public void setDatabaseName(String databaseName) {
		this.databaseName = databaseName;
	}
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getUrl() {
		return url;
	}
	public void setUrl(String url) {
		this.url = url;
	}
	public String getApiDesc() {
		return apiDesc;
	}
	public void setApiDesc(String apiDesc) {
		this.apiDesc = apiDesc;
	}
	public String getDataSupplyName() {
		return dataSupplyName;
	}
	public void setDataSupplyName(String dataSupplyName) {
		this.dataSupplyName = dataSupplyName;
	}
	public String getRequestMethod() {
		return requestMethod;
	}
	public void setRequestMethod(String requestMethod) {
		this.requestMethod = requestMethod;
	}
	
	public Date getCreateTime() {
		return createTime;
	}
	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}
	public Integer getApiTypeId() {
		return apiTypeId;
	}
	public void setApiTypeId(Integer apiTypeId) {
		this.apiTypeId = apiTypeId;
	}
	public Integer getDatabaseSourceId() {
		return databaseSourceId;
	}
	public void setDatabaseSourceId(int databaseSourceId) {
		this.databaseSourceId = databaseSourceId;
	}
	public String getApiStatus() {
		return apiStatus;
	}
	public void setApiStatus(String apiStatus) {
		this.apiStatus = apiStatus;
	}
	public String getDeleteStatus() {
		return deleteStatus;
	}
	public void setDeleteStatus(String deleteStatus) {
		this.deleteStatus = deleteStatus;
	}
	public void setApiType(String apiType) {
		this.apiType = apiType;
	}
	public String getApiType() {
		return apiType;
	}
	public String getKeyWords() {
		return keyWords;
	}
	public void setKeyWords(String keyWords) {
		this.keyWords = keyWords;
	}
	
	public String getCreateMethod() {
		return createMethod;
	}
	public void setCreateMethod(String createMethod) {
		this.createMethod = createMethod;
	}
	
	public String getApiVersionStatus() {
		return apiVersionStatus;
	}
	public void setApiVersionStatus(String apiVersionStatus) {
		this.apiVersionStatus = apiVersionStatus;
	}
	public String getApiDeleteStatus() {
		return apiDeleteStatus;
	}
	public void setApiDeleteStatus(String apiDeleteStatus) {
		this.apiDeleteStatus = apiDeleteStatus;
	}
	public String getLevel() {
		return level;
	}
	public void setLevel(String level) {
		this.level = level;
	}
	public String getFileApiPath() {
		return fileApiPath;
	}
	public void setFileApiPath(String fileApiPath) {
		this.fileApiPath = fileApiPath;
	}

	public String getDatabaseType() {
		return databaseType;
	}

	public String getRedisComdType() {
		return redisComdType;
	}

	public void setRedisComdType(String redisComdType) {
		this.redisComdType = redisComdType;
	}

	public void setDatabaseType(String databaseType) {
		this.databaseType = databaseType;
	}

	public String getRedisComd() {
		return redisComd;
	}

	public void setRedisComd(String redisComd) {
		this.redisComd = redisComd;
	}

	public static void main(String[] args) {
		
		SourceGenerateUtils.generate(ApiManage.class);
		
	}

}
